Eine wirkungsvolle Konfiguration für boolesche Spaltenwerte

Bei der Konfiguration der Struktur einer Datenbanktabelle ist es wichtig, eine wirkungsvolle Strategie für die Speicherung einer booleschen Logik zu wählen, die dann in vielen Programmierumgebungen verwendet werden kann.

Zwar ist in Oracle kein boolescher Datentyp für Datenbankspalten enthalten, es stellt aber einen booleschen Datentyp in PL/SWL bereit. Jede durch einen booleschen Wert definierte Spalte sollte außerdem mit genauen Grenzbedingungen versehen werden, um sicherzustellen, dass beim Einfügen und bei der Aktualisierung nur gültige Werte zur Eingabe kommen.


In der am häufigsten verwendeten Konfiguration werden die vielen booleschen Werten gleichenden Flags der Ansichten des Data-Dictionary von Oracle nachgeahmt, wobei „Y“ für true und „N“ für false gewählt wird. Für ein korrektes Zusammenspiel mit Hostumgebungen wie zum Beispiel JDBC, OCCI und anderen Programmierumgebungen ist es jedoch besser, für false 0 und für true 1 zu wählen, damit die Funktionen getBoolean und setBoolean richtig ausgeführt werden können.

Ein boolescher Wert könnte als NUMBER(1) definiert werden, doch nimmt in Oracles internem Zahlenformat eine 0 ein Byte und eine 1 zwei Byte nach dem Längenbyte ein (so dass es effektiver ist, den Wert als CHAR zu speichern). SQL kann die Konvertierung und Überprüfung anhand tatsächlicher Zahlen auch mit einem als CHAR definierten Zeichen durchführen.


Hier ein Beispiel in Java:


Wird zudem in OCI, OCCI und PRO/C der gewählte Wert als Integer angefordert (SQLT_INT oder OCCIINT), wird er durch die clientseitigen Bibliotheken automatisch in eine binäre 0 beziehungsweise 1 konvertiert, die als native boolesche Werte verwendet werden können.

Hier dasselbe Beispiel in OCCI:


Themenseiten: Big Data, Datenbank, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Eine wirkungsvolle Konfiguration für boolesche Spaltenwerte

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *